最近帮一个朋友收拾他刚买的云服务器,结果发现SSH端口还是默认的22,root密码居然还是初始密码,防火墙更是压根没开。说实话,这就像把家门钥匙挂在门锁上,还在门口贴了张“欢迎光临”的纸条。今天我就结合自己踩过的坑,给新手朋友们整理一份Linux服务器常用安全配置指南,全是干货,照着做就能大幅提升安全性。
一、SSH安全设置:第一道防线
SSH是管理服务器的“大门”,也是最常被攻击的目标。我见过太多暴力破解的日志,每分钟几百次尝试都是家常便饭。所以第一步就是把门锁换好。
1. 修改默认端口
把SSH默认的22端口改成别的,比如2222。虽然不能完全杜绝扫描,但能过滤掉大量“无差别攻击”。编辑配置文件:
sudo vim /etc/ssh/sshd_config
# 找到 #Port 22,改为:
Port 2222
# 保存后重启服务
sudo systemctl restart sshd
注意修改后先别关掉当前连接,新开一个终端测试能连上再退出,不然你可能把自己锁在外面。
2. 禁用root直接登录,使用密钥认证
root是最高权限账号,直接暴露风险极大。建议创建一个普通用户,赋予sudo权限,然后使用SSH密钥登录。在本地生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ssh-copy-id user@your_server_ip
然后修改sshd_config:
sudo vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
这样只有持有私钥的人才能登录,密码暴力破解基本失效。我在生产环境这么配置后,攻击日志直接减少了99%。
二、防火墙配置:给服务器装个“门禁”
Linux自带的防火墙工具很强大,推荐使用ufw(Ubuntu/Debian)或firewalld(CentOS/RHEL)。这里以ufw为例:
sudo apt install ufw -y设置默认策略:拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing
放行SSH(注意要放行你改过的端口)
sudo ufw allow 2222/tcp
放行Web服务(如果跑网站)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
启用防火墙
sudo ufw enable
查看状态
sudo ufw status verbose
我见过不少新手把防火墙一开,结果把自己SSH断掉的情况。所以一定要先放行SSH端口再启用,最好保持当前连接,另开终端测试。
三、定期备份策略:数据是命根子
安全不只是防攻击,还得防数据丢失。勒索病毒、误删除、硬盘故障……任何一次意外都可能让你“一夜回到解放前”。我的原则是:重要数据至少备份两份,一份异地。
最简单的方案是写个cron定时任务,用rsync同步到备份服务器或对象存储。比如每天凌晨3点备份网站目录:
0 3 * rsync -avz --delete /var/www/html/ backup_user@backup_server:/backups/www/ >> /var/log/backup.log 2>&1
数据库备份用mysqldump或pg_dump,然后压缩上传。我之前就靠备份,在服务器被勒索加密后半小时内恢复了所有数据,那感觉简直像捡回一条命。
四、常见攻击防护:主动出击
1. 安装fail2ban拦截暴力破解
fail2ban会自动监控日志,发现多次失败尝试就封禁IP。安装配置很简单:
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local编辑jail.local,设置
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
重启服务
sudo systemctl restart fail2ban
这样同一IP尝试5次失败就会被封1小时。我用它封过成千上万个扫描IP,效果立竿见影。
2. 保持系统更新
很多攻击利用的是已知漏洞,所以及时打补丁很重要。Ubuntu/Debian系统可以设置自动安全更新:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades
CentOS则用yum-cron。别嫌麻烦,这比任何防护软件都实在。
五、其他小建议
如果你用云服务器,建议在云控制台的安全组里也做一层限制,比如只放行常用端口。另外,可以考虑使用像雨云服务器这类云服务商,它们自带基础防护和快照功能,用优惠码aabh还能省点钱。开启快照后,即使出问题也能一键回滚,对新手特别友好。
安全配置不是一次性工作,而是一个持续的过程。建议每隔一段时间检查一下日志、更新策略、评估风险。
最后总结一下:改SSH端口、禁用root、上密钥、开防火墙、定时备份、装fail2ban、保持更新,这七步做完,你的Linux服务器安全性已经超过90%的同类服务器了。剩下的就是养成良好的运维习惯。别怕麻烦,安全这件事,多做一步就多一份保障。祝你的服务器平平安安!
评论区: